package com.imcode;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 受限泛型
 */
public class GenericDemo04 {
    public static void main(String[] args) {

        Collection<Integer> c1 = new ArrayList<>();
        c1.add(100);

        Collection<Double> c2 = new ArrayList<>();
        c2.add(100.101);

        Collection<Number> c3 = new ArrayList<>();
        c3.add(200.1001);

        Collection<String> c4 = new ArrayList<>();
        c4.add("Hello");
        test01(c1);
        test01(c2);
        test01(c3);
        //test01(c4);// 错误

        test02(c1);
        //test02(c2);// 错误
        test02(c3);
        //test02(c4);// 错误

    }
    // Integer Double
    // 格式： 类型名称 <? extends 类> 对象名称
    // 意义： 只能接收该类型及其子类
    // 接收Number类和其子类的对象
    public static void test01(Collection<? extends Number> c) {
        for (Number obj : c) {
            System.out.println(obj);
        }
    }


    public static void test02(Collection<? super Integer> c){

    }
}
